/**
 * Reflect 的地址：https://es6.ruanyifeng.com/#docs/reflect
 */

const person = {
    name: 'lc',
    get aliasName() {
        return this.name + 'handSome'
    }
}

const proxyPerson = new Proxy(person, {
    get(target, key, recevier) { // recevier 是代理对象
        console.log(key);
        // return target[key]
        // return recevier[key]
        return Reflect.get(target, key, recevier)
    }
})

// 原始直接访问 aliasName 属性
// console.log(person.aliasName);

// 通过代理访问 aliasName 属性
// 按照 target[key] 来访问 aliasName 属性会导致 this.name 不能触发代理的
// 因为这里的 target 是 person 因此 this 的指向是 person 不是 proxyPerson 了
// 如果写成 recevier[key] 会造成死循环 一直 get 访问
console.log(proxyPerson.aliasName);


